package com.mmy.controller.guide;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.mmy.domain.guide.TGuideInfo;
import com.mmy.domain.sys.TSysOrg;
import com.mmy.domain.sys.TSysUser;
import com.mmy.service.impl.guide.TGuideInfoServiceImpl;
import com.mmy.service.impl.sys.TSysOrgServiceImpl;

@Controller
public class TGuideInfoController {
	@Autowired
	TGuideInfoServiceImpl tGuideInfoServiceImpl;
	@Autowired
	TSysOrgServiceImpl tSysOrgServiceImpl;

	/* 创建导游信息 */
	@RequestMapping(value = "/tocreateguide")
	public String toCreateGuide(Model m) {
		/* 查询所有旅行社 */
		List<TSysOrg> db_TSysOrg = tSysOrgServiceImpl.findAll();
		m.addAttribute("newTSysOrg", db_TSysOrg);
		return "webbackground/guidemanagement/createguide";
	}

	/* 提交创建的收货信息 */
	@RequestMapping(value = "/savacreateguide")
	public String savaCreateGuide(TGuideInfo tGuideInfo, HttpSession session) throws Exception {
		/* 获得最大收货编号 */
		Object iGuideID = tGuideInfoServiceImpl.getMaxGuideID();
		/* 判断数据库是否存在菜单id 如果存在在最大值基础上加一 如果不存在把最大值置为一 */
		if (iGuideID == null) {
			tGuideInfo.setGuideID(100000000);
		} else {
			tGuideInfo.setGuideID(Integer.parseInt(iGuideID.toString()) + 1);
		}
		TSysUser tSysUser = (TSysUser) session.getAttribute("tSysUser");

		tGuideInfo.setCreateDate(new Date());

		tGuideInfo.setCreator(tSysUser.getUserName());
		tGuideInfoServiceImpl.save(tGuideInfo.getGuideID());
		tGuideInfoServiceImpl.save(tGuideInfo);

		return "redirect:guideindex";

	}

	/**
	 * 函数功能说明： 修改收货信息
	 *
	 * @param 参数说明 tSysAddress
	 * @return 返回值说明 jsp页面
	 * @author 创建人 hanxl
	 * @date 创建日期 2020.08.18
	 */
	/* 点击修改按钮进入修改页面 */
	@RequestMapping("/toupdateguide")
	public String updateGuideCheckedFind(HttpServletRequest request, Model m) {
		String iGuideID = request.getParameter("iGuideID");
		TGuideInfo db_TGuideInfo = tGuideInfoServiceImpl.findByiGuideID(Integer.parseInt(iGuideID));
		m.addAttribute("newTGuideInfo", db_TGuideInfo);
		/* 查询所有旅行社 */
		List<TSysOrg> db_TSysOrg = tSysOrgServiceImpl.findAll();
		m.addAttribute("newTSysOrg", db_TSysOrg);

		return "webbackground/guidemanagement/updateguide";
	}

	/* 提交修改的收货信息 */
	@RequestMapping(value = "/saveupdateguide")
	public String updateGuide(TGuideInfo tGuideInfo, HttpSession session) throws Exception {
		int iGuideID = tGuideInfo.getGuideID();
		/* 定义一个新的实体类对象 */
		TGuideInfo dtGuideInfo = tGuideInfoServiceImpl.findByiGuideID(iGuideID);
		dtGuideInfo.setGuideName(tGuideInfo.getGuideName());
		dtGuideInfo.setSex(tGuideInfo.getSex());
		dtGuideInfo.setOrgID(tGuideInfo.getOrgID());
		dtGuideInfo.setIdentity(tGuideInfo.getIdentity());
		dtGuideInfo.setGuideCard(tGuideInfo.getGuideCard());
		dtGuideInfo.setTel(tGuideInfo.getTel());
		dtGuideInfo.setMail(tGuideInfo.getMail());
		dtGuideInfo.setQQ(tGuideInfo.getQQ());
		dtGuideInfo.setWeiXin(tGuideInfo.getWeiXin());
		dtGuideInfo.setGuideLevel(tGuideInfo.getGuideLevel());
		dtGuideInfo.setGuideType(tGuideInfo.getGuideType());
		dtGuideInfo.setLanguage(tGuideInfo.getLanguage());
		dtGuideInfo.setPrice(tGuideInfo.getPrice());
		dtGuideInfo.setTrait(tGuideInfo.getTrait());
		dtGuideInfo.setRaise(tGuideInfo.getRaise());
		dtGuideInfo.setExplain(tGuideInfo.getExplain());
		dtGuideInfo.setPhotoPath(tGuideInfo.getPhotoPath());
		dtGuideInfo.setMemo(tGuideInfo.getMemo());
		dtGuideInfo.setModifyDate(new Date());
		TSysUser tSysUser = (TSysUser) session.getAttribute("tSysUser");
		dtGuideInfo.setReviser(tSysUser.getUserName());

		tGuideInfoServiceImpl.save(dtGuideInfo);

		return "redirect:guideindex";

	}

	/**
	 * 函数功能说明： 删除收货信息信息
	 *
	 * @param 参数说明 tSysAddress
	 * @return 返回值说明 jsp页面
	 * @author 创建人 hanxl
	 * @date 创建日期 2020.08.18
	 */
	@PostMapping("/deleteguidechecked")
	@ResponseBody
	public String deleteGuideChecked(String checkList) {
		String[] striGuideIDs = checkList.split(",");
		List<Integer> iGuideIDs = new ArrayList<>();

		for (String striGuideID : striGuideIDs) {
			iGuideIDs.add(Integer.parseInt(striGuideID));
		}

		tGuideInfoServiceImpl.deleteChecked(iGuideIDs);

		return "redirect:guideindex";

	}
}
